package com.swak.annotation;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import org.springframework.core.annotation.AliasFor;

import com.swak.utils.StringUtils;

/**
 * 描述 API
 *
 * @author: lifeng
 * @date: Nov 15, 2019 9:42:03 AM
 */
@Target({ ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER, ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface ApiDoc {

	/**
	 * 模块 module
	 *
	 * @return 注释
	 * @author lifeng
	 * @date 2019-11-15 09:43:41
	 */
	String module() default StringUtils.EMPTY;

	/**
	 * 功能
	 *
	 * @return 注释
	 * @author lifeng
	 * @date 2019-11-15 09:43:41
	 */
	String function() default StringUtils.EMPTY;

	/**
	 * 描述 API 的 基本功能和作用: describe 同 value
	 *
	 * @return 注释
	 * @author lifeng
	 * @date 2019-11-15 09:43:41
	 */
	@AliasFor("value")
	String describe() default StringUtils.EMPTY;

	/**
	 * 描述 API 的 基本功能和作用: describe
	 *
	 * @return 注释
	 * @author lifeng
	 * @date 2019-11-15 09:43:41
	 */
	String value() default StringUtils.EMPTY;

	/**
	 * 例子
	 * @return
	 */
	String example() default StringUtils.EMPTY;
}
